package cinvestav.adviseme.controller;

import java.sql.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import cinvestav.adviseme.databasemodel.ISolicitudDB;
import cinvestav.adviseme.databasemodel.SolicitudDB;
import cinvestav.adviseme.datamodel.Lugar;
import cinvestav.adviseme.datamodel.Persona;
import cinvestav.adviseme.datamodel.Solicitud;
import cinvestav.adviseme.util.DBException;

public class SolicitudController implements ISolicitudController{

	protected ISolicitudDB solicitudDB;
	
	public SolicitudController() throws DBException {
		solicitudDB = new SolicitudDB();
	}

	@Override
	public ISolicitudDB getSolicitudDB() {
		return solicitudDB;
	}

	@Override
	public void setSolicitudDB(ISolicitudDB solicitudDB) {
		this.solicitudDB = solicitudDB;
		
	}

	@Override
	public List<Solicitud> getAll() throws DBException {
		return solicitudDB.getAll();
	}

	@Override
	public List<Solicitud> getByFilters(Map<String, String[]> filtros)
			throws DBException {
		// TODO Auto-generated method stub
		return solicitudDB.getByFiter(filtros);
	}

	@Override
	public Boolean delete(Solicitud solicitante) throws DBException {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Boolean insert(Solicitud solicitud) throws DBException {
		// TODO Auto-generated method stub
		return solicitudDB.insert(solicitud);
	}
	
	@Override
	public Boolean update(Solicitud solicitud) throws DBException {
		return solicitudDB.update(solicitud);
	}

	/**
	 * Obtiene la lista de solicitudes que tiene una persona
	 */
	public List<Solicitud> getPendingRequest(Persona solicitado)
			throws DBException {
		return solicitudDB.getPendingRequest(solicitado);
	}

	@Override
	public List<Solicitud> getNotRespondRequest(Persona persona)
			throws DBException {
		// TODO Auto-generated method stub
		return null;
	}

}
